package chwgigs;

public class J02_Operators {

// 연산자 operator
	// 컴퓨터 프로그램은 특정 기능을 수행할 작업들로 구성됨 
	// 연산자 이러한 작업을 표현하는 기호 
	// 작업들에는 더하기 빼기 곱하기 나누기 비트 이동등이 있음 
	// 연산자는 한/두/세 개의 피 연산자에서 
	// 작업을 수행함
	// 피 연산자 operand는 작업의 대상을 의미
	
public static void main(String[] args) {
		// 단항 연산자 : ++ ,-- , !
	
	int val1=10; 
	int val2=val1++; // val1=val1+1;(증가)
		//val1 += 1;
		val2 = val1;
		val1 += 1;
	int val4 = val1 + 1;
	// int val3=--val1;  //  val1=val1-1;(감소)
	
	boolean isMarried=true;
     
	 System.out.println(val2);
	 System.out.println("val1 = " + val1);
	 System.out.println("val4 = " + val4);
	 System.out.println("val1 = " + val1);
	 System.out.println(!isMarried);
	

 // 2. 산술 연산자:  +, -, *,  / , %
	int op1=123;
	int op2=23;
	int result1=op1+op2;
	int result2=op1-op2;
	int result3=op1*op2;
	
	System.out.println(result1);
	System.out.println(result2);
	System.out.println(result3);
	// 정수를 정수로 나누면 결과도 정수 
	//int result42=op1/(float)op2;
	//실수를 정수로 나누면 결과는 실수
	// 수식의 결과 유형과 그것을 저장하는 
	//변수의 유형은 일치해야 함
	
	int result4=op1/op2;
	float result4_=op1/(float)op2;
    double result4__=op1/(double)op2;
	//실수형 변환에 따라 미세한 오차가 발생 할 수도 있음
    //그럴경우 Math 클래스를 이용하면 오차를 줄일 수 있음 

	
	System.out.println(result4);
    //System.out.println(result42);
	//System.out.println(result421);
	
	// 관계/동등  연산자  :  > ,< ,>= ,<= ,== , != 
  
  //조건 연산자 : AND ,OR ,NOT ,&& ,||, ?
	 
	 boolean rel1=100>150;
	 boolean rel2=100<150;
	 boolean rel3=100>=150;
	 boolean rel4=100<=150;
	 boolean rel5=op1==op2;
	 boolean rel6=op1!=op2;
	
	System.out.println(rel1);
	System.out.println(rel2);
	System.out.println(rel3);
	System.out.println(rel4);
	System.out.println(rel5);
	System.out.println(rel6);
	
	//조건 연산자 : AND, OR, &&, ||, ?
	 boolean Cond1=(100>150)&&(op1==op2);
	 //short-circuit 연산
	 // 조건 연산 처리시 첫째항의 연산 결과로 의해 
	 //전체 수식의 결과를 바로 알 수 있는 경우 나머지 항의 수식은 연산하지 않음 
	 boolean Cond2=(op1==op2)&&(100==150);
	 boolean Cond3=(100>150)||(op1==op2);
	 
	 char Cond4=(op1==op2)?'정':'오';
	
	 // 삼항 연산자?: 
	 // 형식은 (조건식) ? '참': '거짓';
	 System.out.println("cond1 = " + Cond1);
	 System.out.println(Cond2);
	 System.out.println(Cond3);
	 System.out.println(Cond4);
	 

	 
	 // 대입 연산자 : = ,+=, -+, *= ,/= ,%=
 
    int assg1=100;     
    int assg2=100;
    int assg3=100;
    int assg4=100;
    int assg5=100;
    
    assg1 +=200;   
    assg2 -=200;
    assg3 *=200;
    assg4 /=75;
    assg5 %=75;
    
    System.out.println(assg1);
    System.out.println(assg2);
    System.out.println(assg3);
    System.out.println(assg4);
    System.out.println(assg5);
    
    
    
     }

}


 
